// 递归实现
function mergeTwoList(l1, l2) {
    if (l1 = null) return l2;
    if (l2 = null) return l1;
    if (l1.val < l2.val) {
        l1.next = mergeTwoList(l1.next, l2)
    } else {
        l2.next = mergeTwoList(l1, l2.next)
    }
}

// function ListNode(val) {
//     this.val = val;
//     this.next = null;
// }

// var a = new ListNode(1);
// var b = new ListNode(2);
// var c = new ListNode(3);
// // var d = new ListNode(4);
// a.next = b;
// b.next = c;
// // c.next = d

// 非递归实现
var mergeTwoLists = function(l1, l2) {
    let temp = res = new ListNode(-1);
    while(l1 && l2) {
        if (l1.val < l2.val) {
            temp.next = l1;
            l1 = l1.next
        }else {
            temp.next = l2;
            l2 = l2.next;
        }
        temp = temp.next;
    }
    temp.next = l1 ? l1 : l2;
    return res.next;
};